/**
********************************************************************************
@file     lib_unit_test.c
@brief    对文件的简要说明
@details  对文件的详细说明
@author   jcai
@date     2024-09-10 20:09:16
@copyright Copyright &copy; 2024 wy1107412334@163.com All rights reserved
@version  v0.0.4

\n Email:  wy1107412334@163.com
\n Blog:   None
\n Github: https://github.com/wy1107412334
\n Gitee:  https://gitee.com/git.git1107412334.com

********************************************************************************
@note
None.
********************************************************************************
@attention
None.
********************************************************************************
@verbatim
@endverbatim
********************************************************************************
@par 修订记录
- jcai, 2024-09-21
  - 新增测试函数 unit_test_failed()
- jcai, 2024-09-16
  - 新增测试函数:
    - ut_verify_ptr_eq
    - ut_verify_ptr_ne
    - ut_verify_i8_lt
    - ut_verify_u8_lt
    - ut_verify_i16_lt
    - ut_verify_u16_lt
    - ut_verify_i32_lt
    - ut_verify_u32_lt
    - ut_verify_i64_lt
    - ut_verify_u64_lt
    - ut_verify_f32_lt
    - ut_verify_f64_lt
    - ut_verify_i8_le
    - ut_verify_u8_le
    - ut_verify_i16_le
    - ut_verify_u16_le
    - ut_verify_i32_le
    - ut_verify_u32_le
    - ut_verify_i64_le
    - ut_verify_u64_le
    - ut_verify_f32_le
    - ut_verify_f64_le
    - ut_verify_i8_gt
    - ut_verify_u8_gt
    - ut_verify_i16_gt
    - ut_verify_u16_gt
    - ut_verify_i32_gt
    - ut_verify_u32_gt
    - ut_verify_i64_gt
    - ut_verify_u64_gt
    - ut_verify_f32_gt
    - ut_verify_f64_gt
    - ut_verify_i8_ge
    - ut_verify_u8_ge
    - ut_verify_i16_ge
    - ut_verify_u16_ge
    - ut_verify_i32_ge
    - ut_verify_u32_ge
    - ut_verify_i64_ge
    - ut_verify_u64_ge
    - ut_verify_f32_ge
    - ut_verify_f64_ge
- jcai, 2024-09-10
  - 新增函数:
    - ut_verify_i8_eq
    - ut_verify_u8_eq
    - ut_verify_i16_eq
    - ut_verify_u16_eq
    - ut_verify_i32_eq
    - ut_verify_u32_eq
    - ut_verify_i64_eq
    - ut_verify_u64_eq
    - ut_verify_f32_eq
    - ut_verify_f64_eq
    - ut_verify_string_eq
    - ut_verify_buffer_eq
    - ut_verify_bool_ne
    - ut_verify_i8_ne
    - ut_verify_u8_ne
    - ut_verify_i16_ne
    - ut_verify_u16_ne
    - ut_verify_i32_ne
    - ut_verify_u32_ne
    - ut_verify_i64_ne
    - ut_verify_u64_ne
    - ut_verify_f32_ne
    - ut_verify_f64_ne
    - ut_verify_string_ne
    - ut_verify_buffer_ne
- jcai, 2024-09-10 20:09:16
  - 首次编写

********************************************************************************
*/

/* 头文件导入区 ------------------------------------------------------------- */

#include "unit_test.h"


/** @defgroup LIB_UNIT_TEST LIB_UNIT_TEST
@brief lib_unit_test modules
@{
*/



/* 宏定义区 ----------------------------------------------------------------- */






/* 数据类型声明区 ----------------------------------------------------------- */


// 声明全局FUT的变量
// fut_name: 要测试的函数名
// UT_EXTERN_FUT_VARNAME(fut_name);
UT_EXTERN_FUT_VARNAME(ut_verify_bool_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_i8_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_u8_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_i16_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_u16_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_i32_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_u32_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_i64_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_u64_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_f32_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_f64_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_string_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_buffer_eq);
UT_EXTERN_FUT_VARNAME(ut_verify_ptr_eq);

UT_EXTERN_FUT_VARNAME(ut_verify_bool_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_i8_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_u8_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_i16_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_u16_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_i32_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_u32_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_i64_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_u64_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_f32_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_f64_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_string_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_buffer_ne);
UT_EXTERN_FUT_VARNAME(ut_verify_ptr_ne);

UT_EXTERN_FUT_VARNAME(ut_verify_i8_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_u8_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_i16_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_u16_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_i32_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_u32_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_i64_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_u64_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_f32_lt);
UT_EXTERN_FUT_VARNAME(ut_verify_f64_lt);

UT_EXTERN_FUT_VARNAME(ut_verify_i8_le);
UT_EXTERN_FUT_VARNAME(ut_verify_u8_le);
UT_EXTERN_FUT_VARNAME(ut_verify_i16_le);
UT_EXTERN_FUT_VARNAME(ut_verify_u16_le);
UT_EXTERN_FUT_VARNAME(ut_verify_i32_le);
UT_EXTERN_FUT_VARNAME(ut_verify_u32_le);
UT_EXTERN_FUT_VARNAME(ut_verify_i64_le);
UT_EXTERN_FUT_VARNAME(ut_verify_u64_le);
UT_EXTERN_FUT_VARNAME(ut_verify_f32_le);
UT_EXTERN_FUT_VARNAME(ut_verify_f64_le);

UT_EXTERN_FUT_VARNAME(ut_verify_i8_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_u8_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_i16_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_u16_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_i32_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_u32_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_i64_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_u64_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_f32_gt);
UT_EXTERN_FUT_VARNAME(ut_verify_f64_gt);

UT_EXTERN_FUT_VARNAME(ut_verify_i8_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_u8_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_i16_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_u16_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_i32_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_u32_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_i64_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_u64_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_f32_ge);
UT_EXTERN_FUT_VARNAME(ut_verify_f64_ge);

UT_EXTERN_FUT_VARNAME(unit_test_failed);





/* 变量定义区 --------------------------------------------------------------- */


static ut_lib_t testLib = {
    // test_lib_name: 测试库的名字
    // UT_STR(test_lib_name),
    UT_STR(unit_test),

    // path_to_source_file: 测试库的源文件路径
    // UT_STR(path_to_source_file),
    UT_STR(/src/unit_test.c),
    {0},
    {NULL, NULL, 0},
    {NULL, NULL, 0},
    0
};









/* 函数定义区 --------------------------------------------------------------- */











/**
********************************************************************************
@brief    测试库注册
@details
测试库注册，并注册FUT到此测试库
@param    none
@retval  none
@note    none
*/
void lib_unit_test_entry(void)
{
    unit_test_lib_register(&testLib);

    /* 下面注册要测试的 FUT */
    // fut_name: 要测试的函数名
    // UT_FUT_REGISTER(testLib, fut_name);
    UT_FUT_REGISTER(testLib, ut_verify_bool_eq);
    UT_FUT_REGISTER(testLib, ut_verify_i8_eq);
    UT_FUT_REGISTER(testLib, ut_verify_u8_eq);
    UT_FUT_REGISTER(testLib, ut_verify_i16_eq);
    UT_FUT_REGISTER(testLib, ut_verify_u16_eq);
    UT_FUT_REGISTER(testLib, ut_verify_i32_eq);
    UT_FUT_REGISTER(testLib, ut_verify_u32_eq);
    UT_FUT_REGISTER(testLib, ut_verify_i64_eq);
    UT_FUT_REGISTER(testLib, ut_verify_u64_eq);
    UT_FUT_REGISTER(testLib, ut_verify_f32_eq);
    UT_FUT_REGISTER(testLib, ut_verify_f64_eq);
    UT_FUT_REGISTER(testLib, ut_verify_string_eq);
    UT_FUT_REGISTER(testLib, ut_verify_buffer_eq);
    UT_FUT_REGISTER(testLib, ut_verify_ptr_eq);

    UT_FUT_REGISTER(testLib, ut_verify_bool_ne);
    UT_FUT_REGISTER(testLib, ut_verify_i8_ne);
    UT_FUT_REGISTER(testLib, ut_verify_u8_ne);
    UT_FUT_REGISTER(testLib, ut_verify_i16_ne);
    UT_FUT_REGISTER(testLib, ut_verify_u16_ne);
    UT_FUT_REGISTER(testLib, ut_verify_i32_ne);
    UT_FUT_REGISTER(testLib, ut_verify_u32_ne);
    UT_FUT_REGISTER(testLib, ut_verify_i64_ne);
    UT_FUT_REGISTER(testLib, ut_verify_u64_ne);
    UT_FUT_REGISTER(testLib, ut_verify_f32_ne);
    UT_FUT_REGISTER(testLib, ut_verify_f64_ne);
    UT_FUT_REGISTER(testLib, ut_verify_string_ne);
    UT_FUT_REGISTER(testLib, ut_verify_buffer_ne);
    UT_FUT_REGISTER(testLib, ut_verify_ptr_ne);

    UT_FUT_REGISTER(testLib, ut_verify_i8_lt);
    UT_FUT_REGISTER(testLib, ut_verify_u8_lt);
    UT_FUT_REGISTER(testLib, ut_verify_i16_lt);
    UT_FUT_REGISTER(testLib, ut_verify_u16_lt);
    UT_FUT_REGISTER(testLib, ut_verify_i32_lt);
    UT_FUT_REGISTER(testLib, ut_verify_u32_lt);
    UT_FUT_REGISTER(testLib, ut_verify_i64_lt);
    UT_FUT_REGISTER(testLib, ut_verify_u64_lt);
    UT_FUT_REGISTER(testLib, ut_verify_f32_lt);
    UT_FUT_REGISTER(testLib, ut_verify_f64_lt);

    UT_FUT_REGISTER(testLib, ut_verify_i8_le);
    UT_FUT_REGISTER(testLib, ut_verify_u8_le);
    UT_FUT_REGISTER(testLib, ut_verify_i16_le);
    UT_FUT_REGISTER(testLib, ut_verify_u16_le);
    UT_FUT_REGISTER(testLib, ut_verify_i32_le);
    UT_FUT_REGISTER(testLib, ut_verify_i64_le);
    UT_FUT_REGISTER(testLib, ut_verify_u64_le);
    UT_FUT_REGISTER(testLib, ut_verify_f32_le);
    UT_FUT_REGISTER(testLib, ut_verify_f64_le);

    UT_FUT_REGISTER(testLib, ut_verify_i8_gt);
    UT_FUT_REGISTER(testLib, ut_verify_u8_gt);
    UT_FUT_REGISTER(testLib, ut_verify_i16_gt);
    UT_FUT_REGISTER(testLib, ut_verify_u16_gt);
    UT_FUT_REGISTER(testLib, ut_verify_i32_gt);
    UT_FUT_REGISTER(testLib, ut_verify_u32_gt);
    UT_FUT_REGISTER(testLib, ut_verify_i64_gt);
    UT_FUT_REGISTER(testLib, ut_verify_u64_gt);
    UT_FUT_REGISTER(testLib, ut_verify_f32_gt);
    UT_FUT_REGISTER(testLib, ut_verify_f64_gt);

    UT_FUT_REGISTER(testLib, ut_verify_i8_ge);
    UT_FUT_REGISTER(testLib, ut_verify_u8_ge);
    UT_FUT_REGISTER(testLib, ut_verify_i16_ge);
    UT_FUT_REGISTER(testLib, ut_verify_u16_ge);
    UT_FUT_REGISTER(testLib, ut_verify_i32_ge);
    UT_FUT_REGISTER(testLib, ut_verify_u32_ge);
    UT_FUT_REGISTER(testLib, ut_verify_i64_ge);
    UT_FUT_REGISTER(testLib, ut_verify_u64_ge);
    UT_FUT_REGISTER(testLib, ut_verify_f32_ge);
    UT_FUT_REGISTER(testLib, ut_verify_f64_ge);

    UT_FUT_REGISTER(testLib, unit_test_failed);
}



/** defgroup LIB_UNIT_TEST
@}
*/


/*********************************** END OF FILE ******************************/
